//
//  AppDelegate.h
//  Knockdoor
//
//  Created by acgera on 2018/4/9.
//  Copyright © 2018年 acgera. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "MHNavigationControllerStack.h"
#import "MHViewModelServicesImpl.h"
#import "IMAAppDelegate.h"
#import "MHCircleInfo.h"
#import "MHDiscoverHomeModel.h"
#import "TXUGCPublishListener.h"
//#import "IMAConversationManager.h"
//#import "TCBGMHelper.h"

#import <ImSDK/ImSDK.h>

#import <TXLiteAVSDK_UGC/TXVideoEditer.h>

//#import "TXVideoEditer.h"
#import "TXUGCPublish.h"
#if DEBUG
#import <FBMemoryProfiler/FBMemoryProfiler.h>
#import <FBRetainCycleDetector/FBRetainCycleDetector.h>
#import "CacheCleanerPlugin.h"
#import "RetainCycleLoggerPlugin.h"
//
#endif
#import "TCBGMHelper.h"
#import "MHRedPacketCreateModel.h"
#import "MHPublishRedPacketCallBack.h"
#import "MHRedEnvelopeConfig.h"
//#import "MHMoment.h"
@interface AXAppDelegate : IMAAppDelegate

@property (strong, nonatomic) UIWindow *window;

@property (nonatomic, readonly, strong) MHNavigationControllerStack *navigationControllerStack;
@property (nonatomic, readonly, strong) MHViewModelServicesImpl *services;
@property (nonatomic, readwrite, assign , getter = isShowKeyboard) BOOL showKeyboard;

@property(nonatomic, strong) TIMConversation *manageCoversation;
/// 获取AppDelegate
+ (AXAppDelegate *)sharedDelegate;

@property(nonatomic,strong) RACCommand *fetchH5Command;

@property(nonatomic,strong) RACCommand *fetchIllegalList;

@property(nonatomic, strong) MHCircleInfo *currentCircleInfo;

@property(nonatomic, strong) MHDiscoverHomeModel *currentDiscoverModel;

@property(nonatomic, strong) TCBGMElement  *currentSong;

@property(nonatomic, strong) NSMutableDictionary *imGroupImMessageUpdate;

/**
 视频相关;
 */
@property(nonatomic, assign) BOOL finishPublish;

@property(nonatomic, assign) BOOL bindSuccess;

@property(nonatomic, copy) NSString *videoContent;

@property(nonatomic, strong) MHCircleInfo *publushCircleInfo;

@property(nonatomic, strong) TXUGCPublish *videoPublish;
@property(nonatomic, copy) NSString  *outPutPath;
@property(nonatomic, strong) TXVideoEditer *txVideoEditer;
@property(nonatomic, strong) TXPublishResult *result;

@property(nonatomic, assign) int actionType;

@property(nonatomic, assign) BOOL inUploading;
@property(nonatomic, assign) CGFloat uploadProgress;

@property(nonatomic, copy) NSString *locationDataString;

@property(nonatomic, copy) MHPublishRedPacketCallBack *callBack;

@property(nonatomic, strong) MHRedPacketCreateModel *createModel;

//@property(nonatomic, assign) int sendNotificationCircleId;

@property(nonatomic, assign) BOOL shareWeChat;

-(void) clearPublishDatas;



@property(nonatomic,readonly, assign) BOOL isAuthorizationExpired;


//- (void)loginIMSDK;
- (void)registNotification;

/// 是否已经弹出键盘 主要用于微信朋友圈的判断
//@property (nonatomic, readwrite, assign , getter = isShowKeyboard) BOOL showKeyboard;

@end

